package com.sun.umbrella.service.oauth2;

/**
 * @author Jay
 * @version v1.0
 * @description 服务授权
 * @date 2017-11-24 11:19
 */
public interface OauthService {


    /**
     * 添加 auth code
     *
     * @param authCode
     * @param username
     */
    void addAuthCode(String authCode, String username);

    /**
     * 添加 access token
     *
     * @param accessToken
     * @param username
     */
    void addAccessToken(String accessToken, String username);

    /**
     * 验证auth code是否有效
     *
     * @param authCode
     * @return
     */
    Boolean checkAuthCode(String authCode);

    /**
     * 验证access token是否有效
     *
     * @param accessToken
     * @return
     */
    Boolean checkAccessToken(String accessToken);

    /**
     * 根据AuthCode查询userName
     *
     * @param authCode
     * @return
     */
    String getUsernameByAuthCode(String authCode);


    /**
     * 根据AccessToken查询userName
     *
     * @param accessToken
     * @return
     */
    String getUserNameByAccessToken(String accessToken);


    /**
     * auth code / access token 过期时间
     *
     * @return
     */
    Long getExpireIn();


    /**
     * 判断ClientId是否传入正确
     *
     * @param clientId
     * @return
     */
    Boolean checkClientId(String clientId);

    /**
     * 判断ClientSecret是否传入正确
     *
     * @param clientSecret
     * @return
     */
    Boolean checkClientSecret(String clientSecret);
}
